module ALU_AdderFraction(A, B, Result, m2, m6, m7);
	input [7:0] A, B;
	output [7:0] Result;
	input m2, m6, m7;
	
	wire sub;
	wire [7:0] RCABin, RCAOut, ResultIfSelected;
	
	assign sub=m6|m7;
	assign RCABin=B^{8{sub}};
	
	RCA RippleCarryAdder(.A(A), .B(RCABin), .C0(sub), .S(RCAOut), .C8());

	MUX_2to1 #(8) WhichtoReturn(.D0(RCAOut), .D1({7'b0, RCAOut[7]}), .S0(m7), .Y(ResultIfSelected));
	
	MUX_2to1 #(8) ReturnOrNot(.D0(8'b0), .D1(ResultIfSelected), .S0(m2|m6|m7), .Y(Result));
	
endmodule